package com.celesea.auth.user.service;

import com.celesea.auth.user.entity.User;
import com.celesea.auth.user.vo.UserFilter;
import com.celesea.auth.user.vo.UserVo;
import com.celesea.framework.service.BaseService;

import java.util.List;

/**
 * @author JackYuan
 * @create 2017-10-30 23:04
 */
public interface UserService extends BaseService<User> {

    @Override
    UserVo selectById(String id);

    UserVo insert(UserVo entity);

    UserVo update(UserVo entity);

    List<User> selectByDept(UserFilter filter);

    List<User> selectByDeptPosition(String tenantId, String deptId, String positionCode);

    User selectByAccount(String tenantId, String account);

    User selectByPk(String tenantId, String id);

    List<User> selectByGroup(String tenantId, String groupId);

    List<User> selectByRole(String tenantId, String roleId);

    List<User> findByIds(String tenantId, List<String> ids);

    void updateFixCompany(String companyId, List<String> childIds);
}
